Skip to content

prompt-injection-check を全 PR 起動・2 層スキャンに改修#24

Merged
watanabe-kohei-jp merged 1 commit into
mainfrom
fix/prompt-injection-guard
May 18, 2026
Merged

prompt-injection-check を全 PR 起動・2 層スキャンに改修#24
watanabe-kohei-jp merged 1 commit into
mainfrom
fix/prompt-injection-guard

Conversation

@watanabe-kohei-jp
Copy link
Copy Markdown
Collaborator

概要

prompt-injection-check.yml を改修し、(1) 必須チェックのデッドロック解消、(2) 誤検知の削減を行う。

直す問題

  • デッドロック — 現行は paths: html/css/js フィルタ付き。.md/.gitignore だけの PR ではジョブが起動せず、必須チェック "Scan PR for hidden AI-readable content" が永久に来ない → マージ不能(実例: PR dist/ を .gitignore に追加 #17, プロジェクト運営方針 STRATEGY.md を公開 #23
  • 誤検知display:none をあらゆる行で検出、HTML コメント内の "AI"/"Claude" 等の単純な単語言及でも fail

改修内容

  • on: pull_request(paths フィルタ撤廃) — 全 PR でジョブが走る。検出が無ければ Success を返すので必須チェックとして機能する
  • 2 層スキャン:
    1. 構造走査 — zero-width / bidi / 不可視 Unicode。全テキストファイル対象。誤検知ほぼ皆無
    2. キーワード走査 — data-ai-* / <template> / JSON-LD / インライン style 属性内の display:none 等。HTML/CSS/JS/SVG のみ対象
  • コメント検出は単なる "AI" 言及でなく injection 的な命令フレーズに限定
  • pi-allow: <理由> を可視で書いた行は除外(opt-out)
  • ワークフロー自身は禁止パターンを文字列で含むため両走査の対象外

補足

破損していた PR #21 を置き換える(あちらは Web UI 貼り付けでインデントが崩れ無効な YAML)。

No-Issue: 必須チェックのデッドロック解消と誤検知削減

🤖 Generated with Claude Code

- paths フィルタを撤廃し全 PR で起動。必須チェックがスキップで
  Pending のまま残り PR をブロックする問題を解消
- 構造走査(zero-width / bidi 等の不可視 Unicode)を全テキスト
  ファイルに拡大。SVG・llms.txt・Markdown も対象に
- キーワード走査(data-ai-* / <template> / JSON-LD 等)は誤検知を
  避けて HTML/CSS/JS/SVG に限定
- display:none / visibility:hidden はインライン style 属性のみ対象
  (stylesheet の正当な利用は弾かない)
- injection コメント検出を命令フレーズ限定に厳格化
- pi-allow マーカーによる可視の行単位 opt-out を追加

No-Issue: CI 設定の不具合修正とスキャン範囲の適正化
@watanabe-kohei-jp watanabe-kohei-jp merged commit bd3b342 into main May 18, 2026
5 checks passed
@watanabe-kohei-jp watanabe-kohei-jp deleted the fix/prompt-injection-guard branch May 18, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant